#include <bits/stdc++.h>
using namespace std;
long long n,k;
map<long long,long long>q;
set<long long>gqr;
long long num[105];
long long ans[100005]={1};
int main(){
    cin>>k>>n;
    for(int i=1;i<=k;++i){
    	cin>>num[i];
    	++q[num[i]];--q[num[i]];
	}
    for(int i=1;i<=n;++i){
    	int f=0;
    	for(int j=1;j<=k;++j){
    		int tt=ans[q[num[j]]]*num[j];
    		if(!gqr.count(tt)&&(!ans[i]||ans[i]>tt)){ans[i]=tt;f=j;}
		}
		gqr.insert(ans[i]);
		++q[num[f]];
    }
    cout<<ans[n]<<endl;
    for(int i=1;i<=n;++i)cout<<ans[i]<<' ';cout<<endl;
    return 0;
}
